package xjtu.se.articlecommunity.common.SSE.service;

import xjtu.se.articlecommunity.common.SSE.MessageType;
import xjtu.se.articlecommunity.common.SSE.dto.MessNum;
import xjtu.se.articlecommunity.common.SSE.dto.MessShow;

import java.io.IOException;
import java.util.List;

public interface MessService {

    /**
     *
     * @param type 消息类型,具体查看 common.SSE.MessageType
     *             eg:点赞文章——{@code MessageType.article_like}
     *                审核不通过——{@code MessageType.disapprove}
     * @param sendId 发送者，系统消息（审核通过/不通过）填{@code null}
     * @param id 点赞：点赞对应文章/评论 id
     *           评论文章/回复评论：发布的评论对应id
     *           审核：文章id
     * @throws IOException 调用此方法的函数需要同样抛出 IOException
     */
    void sendMessage(MessageType type, String sendId, String id) throws IOException;

    List<MessShow> getLikesList(String u_id);

    List<MessShow> getCommentList(String u_id);

    List<MessShow> getReplyList(String u_id);

    List<MessShow> getApproveList(String u_id);

    MessNum getNewMessageNumber(String u_id);

    void clear(String messType1, String messType2, String u_id);
}
